<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //1.用我们的布尔值参与的逻辑运算 true && false == false
        //2.123 && 456 是值 或者是 表达式 参与逻辑运算？
        //3.逻辑与 短路运算 如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1
        console.log(123 && 456);//456
        console.log(0 && 456);//0
        console.log(0 && 1+2 && 456 * 234);//0 
        //空的 否定同样判断为假 例如 0 '' null nudefined NaN  其余是真
        //4.逻辑或短路运算 如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
        console.log(123 || 456);//123
        console.log(123 || 456 || 789 + 123);//123
        console.log(0 || 456 || 789 + 123);//123
        //5.判断unm的值为？
        //判读过程：通过||判断出是一个逻辑或短路运算 根据逻辑或判断条件一：表达式一值：123为真true 所以直接返回表达式一 后面不在执行 所以num++并未递增加1 .log输出结果为num=0
        //备注：逻辑中断很重要 会影响我们的运算结果
        //  var num = 0
        //  console.log(123 || num++);
        //  console.log(num);//0
         //6.判断num2的值为？
         //判读过程：通过&&符号判断为逻辑与短路 根据短路逻辑与语法：表达式1为真的话就返回表达式2。即123不在执行。又根据num2++ 为后置递增运算 即先返原值（先加原变量） 后自加 即num2++ = 2
         var num2 = 2//
         console.log (123 && num2++)//后置递增只有自己单独一行 单独执行的时候才会和原变量值一样，像这里 跟其他代码运算 就先返原值（先加原变量了） 自己（num2++）就不进行递增值还是2
         console.log(num2);//3
    </script>
</head>
<body>
    
</body>
</html>